package cn.tedu.dimanage.user.webapi.mapper;

import cn.tedu.dimanage.pojo.dto.UserUpdateDTO;
import cn.tedu.dimanage.pojo.entity.User;
import cn.tedu.dimanage.pojo.vo.UserDetailVO;
import cn.tedu.dimanage.pojo.vo.UserSimpleVO;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @Classname: UserMapper
 * @Author: bromide
 * @CreateTime: 2022/6/9--下午11:18
 * @Version: V1.0
 * @Description:
 * 处理“用户”数据的持久层接口
 */
@Repository
public interface UserMapper {
    /**
     * 插入“类别”数据
     * @param user 类别
     * @return 受影响的行数
     */
    int insert(User user);

    /**
     * 通过用户名查找用户信息
     * @param username 用户名
     * @return
     */
    UserSimpleVO getByUsername(String username);

    /**
     * 通过手机号查找用户信息
     * @param phone 手机号
     * @return
     */
    UserSimpleVO getByPhone(String phone);

    /**
     * 通过邮箱查找用户信息
     * @param email 邮箱
     * @return
     */
    UserSimpleVO getByEmail(String email);

    /**
     * 根据角色id查找所有的用户信息
     * @return
     */
    List<UserDetailVO> getListDetails(Long roleId);

    /**
     * 查询单个用户的详细信息
     * @return
     */
    UserDetailVO getDetailsByUsername(String username);


    /**
     * 删除用户信息
     * @param id 用户id
     * @return 受影响的行数
     */
    int deleteUserById(Long id);


    /**
     * 更新用户信息
     * @param  userUpdateDTO 需要修改的用户信息
     * @return 受影响的行数
     */
    int updateUser(UserUpdateDTO userUpdateDTO);
}
